package com.yuandian.api.management.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yuandian.api.management.validate.InsertFlag;
import com.yuandian.api.management.validate.UpdateFlag;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 探针数据过滤表-实体
 * @author zfsn
 * @date 2023-4-10
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "探针数据过滤表", description = "")
@TableName("conf_probe_data_filter")
public class ConfProbeDataFilter extends BasePage<ConfProbeDataFilter> {

	/**
	 *
	 */
	@ApiModelProperty(value = "id", notes = "")
	@NotNull(message = "id不能为空", groups = UpdateFlag.class)
	@TableId(type = IdType.AUTO)
	private Integer id;

	/**
	 *
	 */
	@ApiModelProperty(value = "过滤规则名", notes = "")
	@NotBlank(message = "过滤规则名 不能为空", groups = InsertFlag.class)
	private String name;

	/**
	 *
	 */
	@ApiModelProperty(value = "关键字", notes = "")
	private String keyword;

	/**
	 * 1:未同步，2:已同步
	 */
	@ApiModelProperty(value = "0:未过滤", notes = "1:未同步，2:已同步")
	private Integer filterStatus;

	/**
	 *
	 */
	@ApiModelProperty(value = "开始时间", notes = "")
	@NotBlank(message = "开始时间 不能为空", groups = InsertFlag.class)
	private String startTime;

	/**
	 *
	 */
	@ApiModelProperty(value = "探针服务器IP", notes = "")
	@NotBlank(message = "探针服务器IP 不能为空", groups = InsertFlag.class)
	private String probeServerIp;

	/**
	 *
	 */
	@ApiModelProperty(value = "过滤文件名", notes = "")
	private String fileName;

	/**
	 *
	 */
	@ApiModelProperty(value = "倒计时字段", notes = "")
	@NotNull(message = "执行时间 不能为空", groups = InsertFlag.class)
	private Integer timeCountdown;

	/**
	 *
	 */
	@ApiModelProperty(value = "需要的ip集合", notes = "")
	private String ipSaveSet;

	/**
	 *
	 */
	@ApiModelProperty(value = "屏蔽ip集合", notes = "")
	private String ipDropSet;

	/**
	 * 0：否  1：是
	 */
	@ApiModelProperty(value = "会话模式：", notes = "0：否  1：是")
	private Integer sessionModel;

	/**
	 *  0:两者 1:探针 2:实时流
	 */
	@ApiModelProperty(value = "作用范围", notes = " 0:两者 1:探针 2:实时流")
	private Integer reach;

	/**
	 * 0:全部 1：已确认
	 */
	@ApiModelProperty(value = "业务服务资源", notes = "0:全部 1：已确认")
	private Integer businessCode;

	/**
	 * ids
	 */
	@TableField(exist = false)
	@ApiModelProperty(value = "多个id", notes = "多个id")
	private String ids;

}

